home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / nfsmount / nfs_prot.h < prev    next >
C/C++ Source or Header  |  1989-10-10  |  6KB  |  345 lines

  1. #include "voiddef.h"
  2. #define NFS_PORT 2049
  3. #define NFS_MAXDATA 8192
  4. #define NFS_MAXPATHLEN 1024
  5. #define NFS_MAXNAMLEN 255
  6. #define NFS_FHSIZE 32
  7. #define NFS_COOKIESIZE 4
  8. #define NFS_FIFO_DEV -1
  9. #define NFSMODE_FMT 0170000
  10. #define NFSMODE_DIR 0040000
  11. #define NFSMODE_CHR 0020000
  12. #define NFSMODE_BLK 0060000
  13. #define NFSMODE_REG 0100000
  14. #define NFSMODE_LNK 0120000
  15. #define NFSMODE_SOCK 0140000
  16. #define NFSMODE_FIFO 0010000
  17.  
  18. enum nfsstat {
  19.     NFS_OK = 0,
  20.     NFSERR_PERM = 1,
  21.     NFSERR_NOENT = 2,
  22.     NFSERR_IO = 5,
  23.     NFSERR_NXIO = 6,
  24.     NFSERR_ACCES = 13,
  25.     NFSERR_EXIST = 17,
  26.     NFSERR_NODEV = 19,
  27.     NFSERR_NOTDIR = 20,
  28.     NFSERR_ISDIR = 21,
  29.     NFSERR_FBIG = 27,
  30.     NFSERR_NOSPC = 28,
  31.     NFSERR_ROFS = 30,
  32.     NFSERR_NAMETOOLONG = 63,
  33.     NFSERR_NOTEMPTY = 66,
  34.     NFSERR_DQUOT = 69,
  35.     NFSERR_STALE = 70,
  36.     NFSERR_WFLUSH = 99,
  37. };
  38. typedef enum nfsstat nfsstat;
  39. bool_t xdr_nfsstat();
  40.  
  41.  
  42. enum ftype {
  43.     NFNON = 0,
  44.     NFREG = 1,
  45.     NFDIR = 2,
  46.     NFBLK = 3,
  47.     NFCHR = 4,
  48.     NFLNK = 5,
  49.     NFSOCK = 6,
  50.     NFBAD = 7,
  51.     NFFIFO = 8,
  52. };
  53. typedef enum ftype ftype;
  54. bool_t xdr_ftype();
  55.  
  56.  
  57. struct nfs_fh {
  58.     char data[NFS_FHSIZE];
  59. };
  60. typedef struct nfs_fh nfs_fh;
  61. bool_t xdr_nfs_fh();
  62.  
  63.  
  64. struct nfstime {
  65.     u_int seconds;
  66.     u_int useconds;
  67. };
  68. typedef struct nfstime nfstime;
  69. bool_t xdr_nfstime();
  70.  
  71.  
  72. struct fattr {
  73.     ftype type;
  74.     u_int mode;
  75.     u_int nlink;
  76.     u_int uid;
  77.     u_int gid;
  78.     u_int size;
  79.     u_int blocksize;
  80.     u_int rdev;
  81.     u_int blocks;
  82.     u_int fsid;
  83.     u_int fileid;
  84.     nfstime atime;
  85.     nfstime mtime;
  86.     nfstime ctime;
  87. };
  88. typedef struct fattr fattr;
  89. bool_t xdr_fattr();
  90.  
  91.  
  92. struct sattr {
  93.     u_int mode;
  94.     u_int uid;
  95.     u_int gid;
  96.     u_int size;
  97.     nfstime atime;
  98.     nfstime mtime;
  99. };
  100. typedef struct sattr sattr;
  101. bool_t xdr_sattr();
  102.  
  103.  
  104. typedef char *filename;
  105. bool_t xdr_filename();
  106.  
  107.  
  108. typedef char *nfspath;
  109. bool_t xdr_nfspath();
  110.  
  111.  
  112. struct attrstat {
  113.     nfsstat status;
  114.     union {
  115.         fattr attributes;
  116.     } attrstat_u;
  117. };
  118. typedef struct attrstat attrstat;
  119. bool_t xdr_attrstat();
  120.  
  121.  
  122. struct sattrargs {
  123.     nfs_fh file;
  124.     sattr attributes;
  125. };
  126. typedef struct sattrargs sattrargs;
  127. bool_t xdr_sattrargs();
  128.  
  129.  
  130. struct diropargs {
  131.     nfs_fh dir;
  132.     filename name;
  133. };
  134. typedef struct diropargs diropargs;
  135. bool_t xdr_diropargs();
  136.  
  137.  
  138. struct diropokres {
  139.     nfs_fh file;
  140.     fattr attributes;
  141. };
  142. typedef struct diropokres diropokres;
  143. bool_t xdr_diropokres();
  144.  
  145.  
  146. struct diropres {
  147.     nfsstat status;
  148.     union {
  149.         diropokres diropres;
  150.     } diropres_u;
  151. };
  152. typedef struct diropres diropres;
  153. bool_t xdr_diropres();
  154.  
  155.  
  156. struct readlinkres {
  157.     nfsstat status;
  158.     union {
  159.         nfspath data;
  160.     } readlinkres_u;
  161. };
  162. typedef struct readlinkres readlinkres;
  163. bool_t xdr_readlinkres();
  164.  
  165.  
  166. struct readargs {
  167.     nfs_fh file;
  168.     u_int offset;
  169.     u_int count;
  170.     u_int totalcount;
  171. };
  172. typedef struct readargs readargs;
  173. bool_t xdr_readargs();
  174.  
  175.  
  176. struct readokres {
  177.     fattr attributes;
  178.     struct {
  179.         u_int data_len;
  180.         char *data_val;
  181.     } data;
  182. };
  183. typedef struct readokres readokres;
  184. bool_t xdr_readokres();
  185.  
  186.  
  187. struct readres {
  188.     nfsstat status;
  189.     union {
  190.         readokres reply;
  191.     } readres_u;
  192. };
  193. typedef struct readres readres;
  194. bool_t xdr_readres();
  195.  
  196.  
  197. struct writeargs {
  198.     nfs_fh file;
  199.     u_int beginoffset;
  200.     u_int offset;
  201.     u_int totalcount;
  202.     struct {
  203.         u_int data_len;
  204.         char *data_val;
  205.     } data;
  206. };
  207. typedef struct writeargs writeargs;
  208. bool_t xdr_writeargs();
  209.  
  210.  
  211. struct createargs {
  212.     diropargs where;
  213.     sattr attributes;
  214. };
  215. typedef struct createargs createargs;
  216. bool_t xdr_createargs();
  217.  
  218.  
  219. struct renameargs {
  220.     diropargs from;
  221.     diropargs to;
  222. };
  223. typedef struct renameargs renameargs;
  224. bool_t xdr_renameargs();
  225.  
  226.  
  227. struct linkargs {
  228.     nfs_fh from;
  229.     diropargs to;
  230. };
  231. typedef struct linkargs linkargs;
  232. bool_t xdr_linkargs();
  233.  
  234.  
  235. struct symlinkargs {
  236.     diropargs from;
  237.     nfspath to;
  238.     sattr attributes;
  239. };
  240. typedef struct symlinkargs symlinkargs;
  241. bool_t xdr_symlinkargs();
  242.  
  243.  
  244. typedef char nfscookie[NFS_COOKIESIZE];
  245. bool_t xdr_nfscookie();
  246.  
  247.  
  248. struct readdirargs {
  249.     nfs_fh dir;
  250.     nfscookie cookie;
  251.     u_int count;
  252. };
  253. typedef struct readdirargs readdirargs;
  254. bool_t xdr_readdirargs();
  255.  
  256.  
  257. struct entry {
  258.     u_int fileid;
  259.     filename name;
  260.     nfscookie cookie;
  261.     struct entry *nextentry;
  262. };
  263. typedef struct entry entry;
  264. bool_t xdr_entry();
  265.  
  266.  
  267. struct dirlist {
  268.     entry *entries;
  269.     bool_t eof;
  270. };
  271. typedef struct dirlist dirlist;
  272. bool_t xdr_dirlist();
  273.  
  274.  
  275. struct readdirres {
  276.     nfsstat status;
  277.     union {
  278.         dirlist reply;
  279.     } readdirres_u;
  280. };
  281. typedef struct readdirres readdirres;
  282. bool_t xdr_readdirres();
  283.  
  284.  
  285. struct statfsokres {
  286.     u_int tsize;
  287.     u_int bsize;
  288.     u_int blocks;
  289.     u_int bfree;
  290.     u_int bavail;
  291. };
  292. typedef struct statfsokres statfsokres;
  293. bool_t xdr_statfsokres();
  294.  
  295.  
  296. struct statfsres {
  297.     nfsstat status;
  298.     union {
  299.         statfsokres reply;
  300.     } statfsres_u;
  301. };
  302. typedef struct statfsres statfsres;
  303. bool_t xdr_statfsres();
  304.  
  305.  
  306. #define NFS_PROGRAM ((u_long)100003)
  307. #define NFS_VERSION ((u_long)2)
  308. #define NFSPROC_NULL ((u_long)0)
  309. extern VoidPtr nfsproc_null_2();
  310. #define NFSPROC_GETATTR ((u_long)1)
  311. extern attrstat *nfsproc_getattr_2();
  312. #define NFSPROC_SETATTR ((u_long)2)
  313. extern attrstat *nfsproc_setattr_2();
  314. #define NFSPROC_ROOT ((u_long)3)
  315. extern VoidPtr nfsproc_root_2();
  316. #define NFSPROC_LOOKUP ((u_long)4)
  317. extern diropres *nfsproc_lookup_2();
  318. #define NFSPROC_READLINK ((u_long)5)
  319. extern readlinkres *nfsproc_readlink_2();
  320. #define NFSPROC_READ ((u_long)6)
  321. extern readres *nfsproc_read_2();
  322. #define NFSPROC_WRITECACHE ((u_long)7)
  323. extern VoidPtr nfsproc_writecache_2();
  324. #define NFSPROC_WRITE ((u_long)8)
  325. extern attrstat *nfsproc_write_2();
  326. #define NFSPROC_CREATE ((u_long)9)
  327. extern diropres *nfsproc_create_2();
  328. #define NFSPROC_REMOVE ((u_long)10)
  329. extern nfsstat *nfsproc_remove_2();
  330. #define NFSPROC_RENAME ((u_long)11)
  331. extern nfsstat *nfsproc_rename_2();
  332. #define NFSPROC_LINK ((u_long)12)
  333. extern nfsstat *nfsproc_link_2();
  334. #define NFSPROC_SYMLINK ((u_long)13)
  335. extern nfsstat *nfsproc_symlink_2();
  336. #define NFSPROC_MKDIR ((u_long)14)
  337. extern diropres *nfsproc_mkdir_2();
  338. #define NFSPROC_RMDIR ((u_long)15)
  339. extern nfsstat *nfsproc_rmdir_2();
  340. #define NFSPROC_READDIR ((u_long)16)
  341. extern readdirres *nfsproc_readdir_2();
  342. #define NFSPROC_STATFS ((u_long)17)
  343. extern statfsres *nfsproc_statfs_2();
  344.  
  345.